package com.py.credit.dao;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.py.credit.entity.Cards;
import com.py.credit.entity.Enterprise;
import com.py.framework.core.common.Page;

public interface CardsDao {

	public void add(@Param(value = "card") Cards card);

	public void edit(@Param(value = "card") Cards card);

	public List<LinkedHashMap<String, Object>> selectCardsByConditionForPage(
			@Param(value = "params") Map<String, String> params, @Param(value = "columns") List<String> columns,
			@Param(value = "additionalColumns") String[] additionalColumns,
			@Param(value = "conditions") List<String> conditions, @Param(value = "page") Page page);

	public Cards selectCardsDetail(@Param(value = "params") Map<String, String> params);

	public void delete(@Param(value = "list") List<String> cardIds);

	public Integer selectCount(@Param(value = "cardId") String cardId);

	public void updateCardShzj(@Param(value = "params") Map<String, String> params);

	public void updateCardShzjByUserId(@Param(value = "params") Map<String, String> params);

	public void addRelation(@Param(value = "enter") Enterprise enter);

	public List<LinkedHashMap<String, Object>> selectEnterpriseByConditionForPage(
			@Param(value = "params") Map<String, String> params, @Param(value = "columns") List<String> columns,
			@Param(value = "additionalColumns") String[] additionalColumns,
			@Param(value = "conditions") List<String> conditions, @Param(value = "page") Page page);

	public void addHistory(@Param(value = "params") Map<String, Object> params);

	public List<LinkedHashMap<String, Object>> selectHistory(@Param(value = "id") String id);

	public void updateCardStatus(@Param(value = "userId") String userId);

	public void updateCardSinStatus(@Param(value = "id") String id);

	public List<String> selectCardIdByUserId(@Param(value = "userId") String userId,
			@Param(value = "type") String type);

	public List<LinkedHashMap<String, Object>> selectCards(@Param(value = "params") Map<String, String> params);

	public Map<String, Object> selectUserinfo(@Param(value = "id") String id);

	public Long selectCardsSfyzz(@Param(value = "params") Map<String, String> params);

	public Long selectCardsZzsfdq(@Param(value = "params") Map<String, String> params);

}
